const trigger = (el, type) => {
    const e = document.createEvent('HTMLEvents')
    e.initEvent(type, true, true)
    el.dispatchEvent(e)
};
export default {
    bind(el, binding, vNode) {
        if (!binding.value) {
            return;
        }
        let bindValue = binding.value;
        if (bindValue.negative === undefined) {
            bindValue.negative = true;
        }
        const input = el.getElementsByTagName('input')[0]
        input.onkeyup = function (e) {
            let onkeyupValue;
            if (bindValue.len === 0 && input.value) {
                onkeyupValue = input.value.replace(/[^0-9]/g, '')
            } else {
                onkeyupValue = input.value.replace(/[^\d.]/g,'.').replace(/^\/。/g, '.').replace(/^\./g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d{0,4}).*$/, '$1$2.$3');
            }
            input.value = vNode.context.$XEUtils.DoubleInput(onkeyupValue, bindValue.len, bindValue.negative)
            trigger(input, 'input');
        }
        input.onblur = function (e) {
            let onblurValue;
            if (bindValue.len === 0 && input.value) {
                onblurValue = input.value.replace(/[^0-9]/g, '')
            } else {
                onblurValue = input.value.replace(/[^\d.]/g,'.').replace(/^\/。/g, '.').replace(/^\./g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d{0,4}).*$/, '$1$2.$3');
            }
            input.value = vNode.context.$XEUtils.DoubleInput(onblurValue, bindValue.len, bindValue.negative)
            trigger(input, 'input');
        }
        // input.oninput = function (e) {
        //     input.value = vNode.context.$XEUtils.DoubleInput(input.value, bindValue.len, bindValue.negative)
        //     trigger(input, 'oninput');
        // }
    }
};
